When connecting two devices, for example a master device and a slave device, it may be required to transmit signals from the master device to the slave device and from the slave device to the master device.
In order to allow the signals from the transmitting device to be detected accurately by the receiving device, it is necessary to establish synchronization between the devices. One issue that arises with a bidirectional link is the need to take account of the transmission delay between the transmitting device and the receiving device. For example, when one data symbol is transferred in a first direction from a first device to a second device, it arrives at the second device after a certain time delay. Then, if the requirement is that the next data symbol should be transmitted from the second device to the first device, there is a further transmission delay before that next data symbol is received by the first device.
One possibility is to embed timing information in data transmitted on a bidirectional link that includes a single wire (or wire pair). However, this involves extra circuitry and system design complications because of the need to recover the clock and data from a combined data stream.